Get task's Data
{ getTaskData }
Returns the task using its ID.
Method
/API2/tasks/getTaskData
Input Parameters
Name
taskId
Type
string
Description
The task's system ID
Output Response
Successful Result Code
200
Response Type
Description of Response Type
Execution Tasks object with details of a scheduled job task.
Notes
Use this function with other functions for setting and getting tasks and task related functions. Use the 'getTasksIds' method to retrieve task ID's
Examples
Find and Run a scheduled task (JavaScript):
This example demonstrates how to find a item's schedule and then run it programmatically.
The example uses API authentication driven from JavaScript. See Authentication APIs for alternatives.
// URL of the Pyramid installation and the path to the API 2.0 REST methods
var pyramidURL = "http://mysite.com/api2/";
// step 1: authenticate admin account and get token
// NOTE: callApi method is a generic REST method shown below.
let token = callApi("auth/authenticateUser",{
"data":{
"userName":"adminUser",
"password":"abc123!"
}
},false);
log("got token "+token);
// step 2: get all the schedules in the system based on name search
let findSchedule= callApi("tasks/findSchedule ",{
"searchCriteria": {
"searchCriteria":{
"searchValue":"My Demo Schedule",
"searchMatchType":2
},
"scheduleType":1
},
"auth": token
});
// step 3: extract the schedule ID property from the returned schedule that matches "My Demo Schedule"
let scheduleId = findSchedule.data[0].scheduleId
// step 4: launch a run of the chosen schedule now, without triggers
let runSchedule = callApi("tasks/runSchedule ",{
"data":{"scheduleId": scheduleId,"checkTriggers":"false"},
"auth": token
});
if(runSchedule.error!=null){
throw new Error(runSchedule.error);
}
// step 5A: OPTIONAL: get details to check running status of scheduled event. First, get execution ID
let executionId=runSchedule.data;
//stet 5B: get execution item's status.
let taskData= callApi("tasks/getScheduleExecutionStatus ",{
"executionId": executionId,
"auth": token
});
log("executionId status is "+executionStatus[taskData.data.status]);
//step 5C: check status every 3 seconds
if(taskData.data.status!=1){
setTimeout(getStatus,3000);
}
////############ alternative approach #################
//step 6a: get task items in that execution.
let tasks= callApi("tasks/getTasksIds ",{
"executionId": executionId,
"auth": token
});
//step 6B: get the ID of the single task in that execution.
let taskId = tasks.data[0].id
log("got task "+taskId);
//step 6C: get status of the task.
getStatus();
function getStatus(){
let taskData= callApi("tasks/getTaskData ",{
"taskId": taskId,
"auth": token
});
log("task status is "+taskData.data.status);
if(taskData.data.status!=1){
setTimeout(getStatus,3000);
}
}
////############ other methods #################
//step 7: pause the schedule
let suspend= callApi("tasks/suspendSchedule",{
"scheduleId": scheduleId,
"auth": token
});
//step 8: restart the schedule
let resume= callApi("tasks/resumeSchedule",{
"scheduleId": scheduleId,
"auth": token
});
// ##### optional generic login method for debugging ##############
function log(msg){
document.write(msg);
console.log(msg);
}
// ##### generic REST API calling method ##############
function callApi(path,data,parseResult=true){
var xhttp = new XMLHttpRequest();
xhttp.open("POST", pyramidURL+path, false);
xhttp.send(JSON.stringify(data));
if(parseResult){
return JSON.parse(xhttp.responseText);
}else{
return xhttp.responseText;
}
}